constant kShortAppName:="NOAH";
constant kVersion:="1.00";

defConst('kBaseOpenViewEffect,fxUp);

defConst('kContainerShowViewEffect,fxDown+fxWipe);
defConst('kContainerScrollUpEffect,fxDown);
defConst('kContainerScrollDownEffect,fxUp);

constant kAboutBoxTextLineSpacing:=12;
constant kAboutBoxFont:=simpleFont9;

defConst('kAboutBoxText,"Copyright  1996 Matthew Dixon Cowles and his licensors. "
  "Provided with no warranty of any kind. Distributable under the terms of the GNU "
  "General Public License version 2.\n\n"
  "Contact me at\n"
  "  Matt@MondoInfo.com\n\n"
  "or by snail-mail at\n"
  "  Matthew Dixon Cowles\n"
  "  4501 Park Glen Road, no. 345\n"
  "  St Louis Park, MN  55416\n"
  "  USA\n\n"
  "with questions, comments, "
  "job offers, and funny stories.\n\n"
  "Thanks as usual, to the wise and patient llamas\n"
  "at PIE DTS.\n\n"
  "Another little hack from Mondo Info.");

defConst('kAboutBoxViewEffect,fxUp+fxLeft+fxSteps(15));
defConst('kAboutBoxBounds,setBounds(0,0,0,0));

defConst('kNoOverviewMsg,kShortAppName&&"doesn't have an overview. It is an overview.");
constant kOpeningMessageText:="Getting data...";

defConst('kMyA2ZTabsJustify,vjParentCenterH+vjParentTopV);
constant kMyA2ZTabsHeight:=18;  //  It really, really wants to be 18 dots tall.
defConst('kContainerBounds,setBounds(0,kMyA2ZTabsHeight,0,0));

constant kItemContainerMarginBelow:=1;
constant kItemContainerMarginAbove:=2;

constant kDisplayItemHeight:=14;
constant kDisplayItemTextLeft:=2;
constant kDisplayItemTextRight:=181;
constant kDisplayItemDateLeft:=186;
constant kDisplayItemDateRight:=236;
constant kDisplayItemTextBottom:=11;
//constant kDisplayItemLineSpacing:=12;
//constant kDateStrWidth:=50;
//constant kDisplayItemTextSpaceBetween:=5;
constant kDisplayItemFont:=simpleFont9;
defConst('kDisplayTextFrame,{font:kDisplayItemFont});
//defConst('kGuideTextFrame,{font:kDisplayItemFont,transferMode:modeXOr});
defConst('kGuideTextFrame,{font:kDisplayItemFont+tsBold});
//defConst('kLineDateBounds,setBounds(-kDateStrWidth,0,kDisplayItemHeight,0));
//defConst('kLineTextBounds,setBounds(0,0,kDisplayItemHeight,-kDateStrWidth));

//constant kEmptyStr:="(empty)";
//constant kEmptySortKey:="~~~";
constant kSketchStr:="(ink) ";
constant kSketchSortKey:="~~ ";
constant kUnrecognizedTypeMsg:="(unrecognized type) ";
constant kUnrecognizedTypeSortKey:="\u0006";
constant kInkWordSortKey:="\u0002";
constant kInkOnlySortKey:="\u0003";
constant kDummyLastItemSortKey:="~~~~~~~~";
constant kNonAlphaSortKey:="\u0005";

constant kAllString:="All";
constant kUnfiledString:="Unfiled";

defConst('kOneDataItem,{alias:NIL,sortKey:"",text:"",dateStr:""});
defConst('kInkOnlyItem,{sortKey:kInkOnlySortKey,numOfThem:0});

constant kSingSketchText:="(One sketch)";
constant kPluralSketchText:="(^0 sketches)";

defConst('kGuideItems,
  [
  {sortKey:"\u0001",text:"Ink"},
  {sortKey:"\u0004",text:"Non-alphabetic"},
  {sortKey:"a",text:"A"},
  {sortKey:"b",text:"B"},
  {sortKey:"c",text:"C"},
  {sortKey:"d",text:"D"},
  {sortKey:"e",text:"E"},
  {sortKey:"f",text:"F"},
  {sortKey:"g",text:"G"},
  {sortKey:"h",text:"H"},
  {sortKey:"i",text:"I"},
  {sortKey:"j",text:"J"},
  {sortKey:"k",text:"K"},
  {sortKey:"l",text:"L"},
  {sortKey:"m",text:"M"},
  {sortKey:"n",text:"N"},
  {sortKey:"o",text:"O"},
  {sortKey:"p",text:"P"},
  {sortKey:"q",text:"Q"},
  {sortKey:"r",text:"R"},
  {sortKey:"s",text:"S"},
  {sortKey:"t",text:"T"},
  {sortKey:"u",text:"U"},
  {sortKey:"v",text:"V"},
  {sortKey:"w",text:"W"},
  {sortKey:"x",text:"X"},
  {sortKey:"y",text:"Y"},
  {sortKey:"z",text:"Z"},
  ]);

constant kMaxInt:=536870911;
constant kMinInt:=-536870911;

defConst('kMyNotify,func(msg)
  begin
  getRoot():notify(kNotifyQAlert,ensureInternal(kShortAppName),ensureInternal(msg));
  end);

/*
defConst('kAppendArray,func(baseArray,arrayToAppend)
  begin
  arrayMunger(baseArray,length(baseArray),0,arrayToAppend,0,NIL);
  end);
*/

defConst('kTrace,func(switchValue)
  begin
  if switchValue then
    trace:='functions;
  else
    trace:=NIL;
  apply(func () nil,[]);
  end);
